#include "head.h"

void* thread_main(void *p){
    resource_p *p1 = (resource_p*)p;
    while(1){
        pthread_mutex_lock(&p1->lock);
        //判断是否有任务
        //避免虚假唤醒
        while(p1->queue.size <= 0){
            //没有任务，释放锁并阻塞，等待被唤醒
            pthread_cond_wait(&p1->cond, &p1->lock);
        }
        if(p1->queue.size > 0){
            //走到这，被唤醒并获得锁
            //读取任务
            printf("thread_main : %d \n", p1->queue.size);
            int net_fd = p1->queue.front->data;
            printf("thread_main2 \n");
            //出队
            quit_queue(&p1->queue);
            pthread_mutex_unlock(&p1->lock);
            //执行任务
            do_work(net_fd);
        }
    }
    return 0;
}



